/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.trabalho.converter;

import br.com.trabalho.DAO.DAOFuncionario;
import br.com.trabalho.model.Funcionario;
import br.com.trabalho.model.Pessoa;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

/**
 *
 * @author Leandro
 */
@FacesConverter(forClass = Funcionario.class, value = "funcConverter")
public class ConverterFuncionario implements Converter {

    @Override
    public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
        if ((value.equals(null)) || (value.length() == 0)) {
            return null;
        }
        DAOFuncionario dao = new DAOFuncionario();
        return dao.carregarUm(getID(value), Funcionario.class);
    }

    Integer getID(String value) {
        Integer id;
        id = Integer.valueOf(value);
        return id;
    }

    String getStringID(Integer value) {
        StringBuilder sb = new StringBuilder();
        sb.append(value);
        return sb.toString();
    }

    @Override
    public String getAsString(FacesContext fc, UIComponent uic, Object value) {
        if (value.equals(null)) {
            return null;
        }

        if (value instanceof Pessoa) {
            Pessoa o = (Pessoa) value;
            return getStringID(o.getId());
        } else {
            throw new IllegalArgumentException("objeto " + value + " possui o tipo "
                    + value.getClass().getName()
                    + "; tipo esperado: ");
        }
    }
}
